#!/bin/bash
#========================================================================
# Author: YSLin
# Email: 
# File Name: time.sh
# Description: 
#   
# Edit History: 
#   2010-12-14    File created.
#========================================================================

#========================================================================
# 指定格式的日期時間                                                                                                         
#========================================================================

date +'%Y/%m/%d %H:%M:%S'  # yyyy/mm/dd HH:MM:SS
date +'%c'                 # 依對應locale(語言環境)的格式
date +'Timezone: %Z'       # 顯示現在的時區


#========================================================================
# Linux/GNU date中的日期時間運算
#========================================================================

# 2004年1月1日是星期幾?
date -d '2004/1/1' +'%A' # Thursday

# 2004年1月1日的第100天後是幾月幾日?
date -d '2004/1/1 100 days' +'%F'  # 2004-04-10

# 上午10時的第1000秒前是幾時幾分幾秒?
date -d '10:00:00 1000 seconds ago' +'%T' # 09:43:20

#1，将秒转换成时间：
date -d "1970-01-01 UTC 1272085617 seconds" # Sat Apr 24 13:06:57 CST 2010

#Sat Apr 24 13:06:57 CST 2010
#2，将时间转换为秒
date +%s -d " Apr 24 13:06:57 CST 2010"  # 1272085617

# 2009-1-1 的前一天
date --date="2009-1-1 1 day ago" +%F  # 2008-12-31

# 2008-2-28 的後一天
date --date="2008-2-28 1 day" +%F  # 2008-02-29

# 2008-2-28的兩個月前
date --date="2008-2-28 2 month ago" +%F  # 2007-12-28

# 取得時間的年月日時分秒,並且以自訂格式輸出
date --date="2008-2-28 04:44:44" +"%F %T" # 2008-02-28 04:44:44
date --date="2008-2-28 04:44:44 1 day ago" +"%F %T" # 2008-02-27 04:44:44
#========================================================================
# BSD date底下的時間運算
#========================================================================

# 2004年1月1日是星期幾?
#date -v2004y -v1m -v1d +'%A'

# 2004年1月1日的第100天後是幾月幾日?
#date -v2004y -v1m -v1d -v+100d +'%F'

# 上午10時的第1000秒前是幾時幾分幾秒?
#date -v10H -v0M -v0S -v-1000S +'%T'

#========================================================================
#以指定的時區來顯示時間
#========================================================================

# 巴黎現在是幾點?
TZ=Europe/Paris date

# 現在在世界標準時間是幾點?
TZ=GMT date                 


#========================================================================
# 產生連續的日期
#========================================================================
DATE_ASSIGN="2011-6-25"
day=30

echo $DATE_ASSIGN
for d in {0..20}
do
    echo `date --date="$DATE_ASSIGN 00:00:00 $d day" +"%F %T"`
done
